/*
 * $Id: $
 */
package org.rcgwt.client.ui.grid.internal.model;

/**
 * 
 * @author Olivier Oeuillot (latest modification by $Author: $)
 * @version $Revision: $ $Date: $
 */
public interface IViewModel extends IElementModel {
    int VIEW_TYPE = 2;

    int LEFT_HEADER = 0x01;

    int RIGHT_HEADER = 0x02;

    int TOP_HEADER = 0x04;

    int BOTTOM_HEADER = 0x08;

    int HORIZONTAL_SCROLLBAR = 0x100;

    int VERTICAL_SCROLLBAR = 0x200;

    IViewModelElements getViewModelElements();

    int getRenderHints();

    IGridModel getGridModel();

    boolean setScrollPositions(int scrollLeft, int scrollTop);

    int getScrollLeft();

    int getScrollTop();

    /*
     * void onScrollEvent(IViewRenderContext viewRenderContext);
     * 
     * void onClientMouseMoveEvent(IViewRenderContext viewRenderContext, Event
     * event, Element element);
     * 
     * void onClientMouseOutEvent(IViewRenderContext viewRenderContext, Event
     * event, Element element);
     * 
     * void onClientMouseOverEvent(IViewRenderContext viewRenderContext, Event
     * event, Element element);
     */

    // IHeaderModel defineHeader(int modelIndex, IHeaderModel.Position
    // position);

    IHeaderModel getHeaderModelByPosition(IHeaderModel.Position position);

    IHeaderModel[] listHeaderModels();
}